package com.leyou.common.advice;

import com.leyou.common.exception.LyException;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;

/**
 * 声明对于Controller中方法的异常的处理
 *
 * @author 虎哥
 */
@ControllerAdvice
public class ExceptionAdvice {

    /**
     * 注解@ExceptionHandler声明当前方法来处理LyException类型异常
     * 被捕获的异常，将来会作为参数传递给当前方法，在方法中，可以编写异常处理逻辑
     *
     * @return 异常处理的结果
     */
    @ExceptionHandler(LyException.class)
    public ResponseEntity<String> handleException(LyException e) {
        // 返回业务状态码和异常消息
        return ResponseEntity.status(e.getStatus()).body(e.getMessage());
    }
}
